#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
typedef int DataType;
typedef struct ThreadNode
{
    DataType data_;
    struct ThreadNode *left_;
    struct ThreadNode *right_;
    int lflag_;
    int rflag_;
} ThreadNode, *ThreadTree;
ThreadNode *BuyTreeNode(DataType val);
ThreadTree Create();
void Destory(ThreadTree *root);
void CreateInThread(ThreadTree root);
void CreatePreThread(ThreadTree root);
void CreateLastThread(ThreadTree root);
void inorder(ThreadTree root);

// 中序线索树的正向遍历
void ThreadInOrder(ThreadTree root);

// 中序线索树的逆向遍历
void ThreadReverseInOrder(ThreadTree root);

// 先序线索树的遍历
void ThreadPreOrder(ThreadTree root);
// 后序线索树的遍历
void ThreadLastOrder(ThreadTree root);
